类方法和实例方法有什么区别?
实例方法是访问器(getter和setter)而类方法是其他所有东西吗?
就像大多数其他答案所说的那样,实例方法使用类的实例,而类方法只能与类名一起使用。因此在Objective-C中对它们进行了定义:
@interface MyClass : NSObject + (void)aClassMethod; - (void)anInstanceMethod; @end
然后可以像这样使用它们:
[MyClass aClassMethod]; MyClass *object = [[MyClass alloc] init]; [object anInstanceMethod];
一些真实世界的类方法的例子是很多基础类,如方便的方法NSString的+stringWithFormat:或NSArray的+arrayWithArray:。实例方法将是NSArray的-count方法。
NSString
+stringWithFormat:
NSArray
+arrayWithArray:
-count